package com.xiaoshuidi.cloud.module.finance.dal.dataobject.invoice;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xiaoshuidi.cloud.framework.mybatis.core.dataobject.BaseDO;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

import java.util.function.Consumer;

/**
 * 开票记录
 *
 * @author Auto generated
 * @date Fri Jul 14 11:01:27 CST 2023
 **/
@Data
@Builder
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "t_base_invoice", autoResultMap = true)
public class InvoiceDO extends BaseDO {
    private Long tenantId;

    @TableId
    private Long id;

    /**
     * 客户类型
     */
    private String custType;
    /**
     * 客户id
     */
    private Long custId;
    /**
     * 账单号
     */
    private String orderNo;
    /**
     * 门店id
     */
    private Long apartmentId;
    /**
     * 发票类型：0-增值税电子普通发票,1-增值税电子专用发票
     */
    private String invoiceType;
    /**
     * 发票抬头
     */
    private String title;
    /**
     * 纳税人识别号
     */
    private String taxpayerId;
    /**
     * 公司地址
     */
    private String companyAddress;
    /**
     * 公司电话
     */
    private String companyTel;
    /**
     * 开户行
     */
    private String bank;
    /**
     * 开户行账号
     */
    private String bankAccount;
    /**
     * 开票状态：1 开票中 2 已开票 3 开票失败 4 已红冲 5 已作废 6 已换开  7 红冲申请中 8 红冲确认中 9红冲失败
     */
    private String status;
    /**
     * 发票号码
     */
    private String invoiceNumber;
    /**
     * 发票代码
     */
    private String invoiceCode;
    /**
     * 备注
     */
    private String remark;
    /**
     * 客户邮箱
     */
    private String email;
    /**
     * 客户手机号
     */
    private String mobile;
    /**
     * 请求流水号
     */
    private String seqNo;
    /**
     * 红票单号
     */
    private String redSeqNo;
    /**
     * 校验码
     */
    private String checkCode;
    /**
     * 二维码
     */
    private String qrCode;
    /**
     * pdf下载路径
     */
    private String pdfUrl;
    /**
     * 红票
     */
    private String reversalPdfUrl;
    /**
     * 发票密文
     */
    private String ciphertext;
    /**
     * 合计不含税金额
     */
    private java.math.BigDecimal amountWithoutTax;
    /**
     * 合计税额
     */
    private java.math.BigDecimal taxAmount;
    /**
     * 开票金额
     */
    private java.math.BigDecimal amount;
    /**
     * 开票日期
     */
    private java.time.LocalDateTime createDate;
    /**
     * 税控设备编号
     */
    private String taxDeviceNo;
    /**
     * 开票审核人
     */
    private String reviewer;
    /**
     * 红冲状态
     */
    private String reversalStatus;
    /**
     * 失败原因
     */
    private String errorReason;
}
